package bd;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import model.SetorForm;
import model.StatusForm;
import model.UsuarioForm;

public class JDBCUsuarioDAO implements  UsuarioDAO 
{
	Connection conn;
	public Vector searchallStatus() 
	{
		StatusForm status = null;
		conn = conexaoJDBC.getConnection();
		String strSQL = "";
		Statement stm;
		Vector<StatusForm> vecStatus = new Vector<StatusForm>();
		try
		{
			stm = conn.createStatement();
			strSQL = "select * from TAB_STATUS";
			ResultSet rs;
			System.out.println(strSQL);
			rs = stm.executeQuery(strSQL);
			while (rs.next())
			{
				status = new StatusForm(rs.getInt("COD_STATUS"), rs.getString("STR_DESCRICAO_STATUS"));
				System.out.println("Entrei no wile do status");
				System.out.println(strSQL);
				System.out.println(status.getDescricao_status());
				vecStatus.add(status);
			}
			rs.close();
			stm.close();
		} 
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return vecStatus;
	}
		/**
	 * Aqui
	 */
	
	
	
	
	
	public void excluirSetor(SetorForm set) 
	{
		conn = conexaoJDBC.getConnection();
		String strSQL = "";
		Statement stm;
		try {
			stm = conn.createStatement();
			strSQL = "update TAB_SETOR set STR_DESABILITADO = '"+ set.getDesabilitado() +"'" +
					"where COD_SETOR = '"+ set.getCod_setor() +"'";	
		    System.out.println(strSQL);
	    	stm.execute(strSQL);
	        stm.close();
		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
		}
	}
	/**
	 * Daqui para baixo vale
	 */
	public UsuarioForm alterarUsuario(UsuarioForm usu)
	{
		UsuarioForm usuario = null;
		conn = conexaoJDBC.getConnection();
		String strSQL = "";
		Statement stm;
		Statement stm2;
		try {
			stm = conn.createStatement();
			stm2 = conn.createStatement();
			strSQL = "update TAB_USUARIO set STR_NOME_USUARIO = '"+ usu.getNome_usuario() +"'," +
					" STR_LOGIN_USUARIO = '"+ usu.getLogin_usuario() +"', STR_SENHA_USUARIO = '"+ usu.getSenha_usuario() +"', STR_EMAIL_USUARIO = '"+ usu.getEmail_usuario() +"', COD_PERFIL = '"+ usu.getCod_perfil() +"', USUARIO_DESABILITADO = '"+ usu.getUsuario_desabilitado() +"'"+
					"where COD_USUARIO = '"+ usu.getCod_usuario() +"'";
			
		
			
		    System.out.println(strSQL);
	    	stm.execute(strSQL);
	        stm.close();
	    	strSQL = "select COD_USUARIO, STR_NOME_USUARIO, STR_LOGIN_USUARIO, STR_SENHA_USUARIO, STR_EMAIL_USUARIO, COD_PERFIL, USUARIO_DESABILITADO from TAB_USUARIO where COD_USUARIO = '"+usu.getCod_usuario()+"'";
			ResultSet rs;
			System.out.println(strSQL);
			rs = stm2.executeQuery(strSQL);
			while (rs.next())
			{
				usuario = new UsuarioForm(rs.getInt("COD_USUARIO"), rs.getString("STR_NOME_USUARIO"), rs.getString("STR_LOGIN_USUARIO"), rs.getString("STR_SENHA_USUARIO"), rs.getString("STR_EMAIL_USUARIO"), rs.getInt("COD_PERFIL"), rs.getString("USUARIO_DESABILITADO"));
				System.out.println(strSQL);
			}
			rs.close();
			stm2.close();
		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
		}
		return usuario;
	}
	public void excluirUsuario(UsuarioForm set)
	{
		conn = conexaoJDBC.getConnection();
		String strSQL = "";
		Statement stm;
		try {
			stm = conn.createStatement();
			strSQL = "update TAB_USUARIO set USUARIO_DESABILITADO = '"+ set.getUsuario_desabilitado() +"'" +
					"where COD_USUARIO = '"+ set.getCod_usuario() +"'";	
		    System.out.println(strSQL);
	    	stm.execute(strSQL);
	        stm.close();
		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
		}
		
	}
	public UsuarioForm findUsuario(String parameter)
	{
		UsuarioForm usuario = null;
		conn = conexaoJDBC.getConnection();
		String strSQL = "";
		Statement stm;
		
		try
		{
			stm = conn.createStatement();
			strSQL = "select COD_USUARIO, STR_NOME_USUARIO, STR_LOGIN_USUARIO, STR_SENHA_USUARIO, STR_EMAIL_USUARIO, COD_PERFIL, USUARIO_DESABILITADO from TAB_USUARIO where COD_USUARIO = '"+parameter+"' and USUARIO_DESABILITADO = 'FALSE'";
			ResultSet rs;
			System.out.println(strSQL);
			rs = stm.executeQuery(strSQL);
			while (rs.next())
			{
				usuario = new UsuarioForm(rs.getInt("COD_USUARIO"), rs.getString("STR_NOME_USUARIO"), rs.getString("STR_LOGIN_USUARIO"), rs.getString("STR_SENHA_USUARIO"), rs.getString("STR_EMAIL_USUARIO"), rs.getInt("COD_PERFIL"), rs.getString("USUARIO_DESABILITADO"));
				System.out.println(strSQL);
			}
			rs.close();
			stm.close();
		} 
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		
		
		return usuario;
	}
	public UsuarioForm findexistenteUsuario(String nome_Usuario)
	{
		UsuarioForm usuario = null;
		conn = conexaoJDBC.getConnection();
		String strSQL = "";
		Statement stm;
		
		try
		{
			stm = conn.createStatement();
			strSQL = "select COD_USUARIO, STR_NOME_USUARIO, STR_LOGIN_USUARIO, STR_SENHA_USUARIO, STR_EMAIL_USUARIO, COD_PERFIL, USUARIO_DESABILITADO from TAB_USUARIO where STR_LOGIN_USUARIO = '"+nome_Usuario+"' and USUARIO_DESABILITADO = 'FALSE'";
			ResultSet rs;
			System.out.println(strSQL);
			rs = stm.executeQuery(strSQL);
			while (rs.next())
			{
				usuario = new UsuarioForm(rs.getInt("COD_USUARIO"), rs.getString("STR_NOME_USUARIO"), rs.getString("STR_LOGIN_USUARIO"), rs.getString("STR_SENHA_USUARIO"), rs.getString("STR_EMAIL_USUARIO"), rs.getInt("COD_PERFIL"), rs.getString("USUARIO_DESABILITADO"));
				System.out.println("Entrei no wile");
				System.out.println(strSQL);
			}
			rs.close();
			stm.close();
		} 
		catch (SQLException e)
		{
			e.printStackTrace();
		}	
		return usuario;
	}
	public UsuarioForm insertUsuario(UsuarioForm set)
	{
		UsuarioForm usuario = null;
		conn = conexaoJDBC.getConnection();
		String strSQL = "";
		Statement stm;
		Statement stm2;
		try {
			stm = conn.createStatement();
			stm2 = conn.createStatement();
			strSQL = "insert into TAB_USUARIO (STR_NOME_USUARIO, STR_LOGIN_USUARIO, STR_SENHA_USUARIO, STR_EMAIL_USUARIO, COD_PERFIL, USUARIO_DESABILITADO) " +
					" values (" +
					"'"+ set.getNome_usuario() +"', '"+ set.getLogin_usuario() +"', '"+ set.getSenha_usuario() +"', '"+ set.getEmail_usuario() +"', '"+ set.getCod_perfil() +"', '"+ set.getUsuario_desabilitado() +"')";
		    System.out.println(strSQL);
	    	stm.execute(strSQL);
	        stm.close();
	    	strSQL = "select COD_USUARIO, STR_NOME_USUARIO, STR_LOGIN_USUARIO, STR_SENHA_USUARIO, STR_EMAIL_USUARIO, COD_PERFIL, USUARIO_DESABILITADO from TAB_USUARIO where STR_NOME_USUARIO = '"+set.getNome_usuario()+"'";
			ResultSet rs;
			System.out.println(strSQL);
			rs = stm2.executeQuery(strSQL);
			while (rs.next())
			{
				usuario = new UsuarioForm(rs.getInt("COD_USUARIO"), rs.getString("STR_NOME_USUARIO"), rs.getString("STR_LOGIN_USUARIO"), rs.getString("STR_SENHA_USUARIO"), rs.getString("STR_EMAIL_USUARIO"), rs.getInt("COD_PERFIL"), rs.getString("USUARIO_DESABILITADO"));
				System.out.println("Entrei no wile");
				System.out.println(strSQL);
			}
			rs.close();
			stm2.close();
		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
		}
		return usuario;
	}
	public Vector searchallusuario()
	{
		UsuarioForm usuario = null;
		conn = conexaoJDBC.getConnection();
		String strSQL = "";
		Statement stm;
		Vector<UsuarioForm> vecUsuario = new Vector<UsuarioForm>();
		try
		{
			stm = conn.createStatement();
			strSQL = "select * from TAB_USUARIO where USUARIO_DESABILITADO = 'FALSE'";
			ResultSet rs;
			System.out.println(strSQL);
			rs = stm.executeQuery(strSQL);
			while (rs.next())
			{
				usuario = new UsuarioForm(rs.getInt("COD_USUARIO"), rs.getString("STR_NOME_USUARIO"), rs.getString("STR_LOGIN_USUARIO"), rs.getString("STR_SENHA_USUARIO"), rs.getString("STR_EMAIL_USUARIO"), rs.getInt("COD_PERFIL"), rs.getString("USUARIO_DESABILITADO"));
				System.out.println("Entrei no wile do status");
				System.out.println(strSQL);
				vecUsuario.add(usuario);
			}
			rs.close();
			stm.close();
		} 
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return vecUsuario;
	}
	public UsuarioForm validausuario(String login_usuario, String senha_usuario)
	{
		UsuarioForm usuario = null;
		conn = conexaoJDBC.getConnection();
		String strSQL = "";
		Statement stm;
		
		try
		{
			stm = conn.createStatement();
			strSQL = "select COD_USUARIO, STR_NOME_USUARIO, STR_LOGIN_USUARIO, STR_SENHA_USUARIO, STR_EMAIL_USUARIO, COD_PERFIL, USUARIO_DESABILITADO from TAB_USUARIO where STR_LOGIN_USUARIO = '"+login_usuario+"' and STR_SENHA_USUARIO = '"+senha_usuario+"' and USUARIO_DESABILITADO = 'FALSE'";
			ResultSet rs;
			System.out.println(strSQL);
			rs = stm.executeQuery(strSQL);
			while (rs.next())
			{
				usuario = new UsuarioForm(rs.getInt("COD_USUARIO"), rs.getString("STR_NOME_USUARIO"), rs.getString("STR_LOGIN_USUARIO"), rs.getString("STR_SENHA_USUARIO"), rs.getString("STR_EMAIL_USUARIO"), rs.getInt("COD_PERFIL"), rs.getString("USUARIO_DESABILITADO"));
				System.out.println("Entrei no wile");
				System.out.println(strSQL);
			}
			rs.close();
			stm.close();
		} 
		catch (SQLException e)
		{
			e.printStackTrace();
		}	
		return usuario;
	}



}

	
